package menu_api

// AddMenuRequest 添加菜单
type AddMenuRequest struct {
	Name          string `json:"name"`
	ParentId      int64  `json:"parent_id"`
	Icon          string `json:"icon"`
	Order         uint   `json:"order"`
	Path          string `json:"path"`
	Level         uint   `json:"level"`
	ComponentName string `json:"component_name"`
}

// MenuReply 菜单列表数据返回结构体
type MenuReply struct {
	ID            int64        `json:"id"`
	ParentID      int64        `json:"parent_id"`
	Name          string       `json:"name"`
	Order         uint         `json:"order"`
	Icon          string       `json:"icon"`
	Level         uint         `json:"level"`
	Path          string       `json:"path"`
	ComponentName string       `json:"component_name"`
	SubMenus      []*MenuReply `json:"sub_menus"`
}

// AllMenu 所有菜单数据结构体
type AllMenu struct {
	ID            int64  `json:"id"`
	ParentID      int64  `json:"parent_id"`
	Name          string `json:"name"`
	Order         uint   `json:"order"`
	Icon          string `json:"icon"`
	Level         uint   `json:"level"`
	Path          string `json:"path"`
	ComponentName string `json:"component_name"`
}

// UpdateMenuRequest 更新菜单信息
type UpdateMenuRequest struct {
	ID int64 `json:"id"`
	AddMenuRequest
}

// DeleteMenuRequest 删除菜单的结构体
type DeleteMenuRequest struct {
	ID int64 `json:"id"`
}

// AddMenuForRoleRequest 个角色添加菜单
type AddMenuForRoleRequest struct {
	RoleId  int64   `json:"role_id"`
	MenuIds []int64 `json:"menu_ids"`
}

// GetMenuFromRoleRequest 根据角色获取菜单
type GetMenuFromRoleRequest struct {
	Name string `json:"name"`
}
